##########  三乐购物系统  #########
import sys



Shopping_list ={}
#购物清单
money = 0
#总金额
out_money = 0
#余额



"""部分用户信息"""
lst = {'root': {'passwd': '12345', 'balance': 360}, 'dmxb': {'passwd': '919795', 'balance': 950}}
#用字典来存放用户信息



"""商品信息"""
goodslist = {'F00001': {'name': '苹果', 'price': 10}, 'F00002': {'name': '香蕉', 'price': 5.5},
             'F00003': {'name': '橙子', 'price': 15.6}, 'F00004': {'name': '柚子', 'price': 3.6},
             'F00005': {'name': '牛奶', 'price': 45}, 'F00006': {'name': '酸奶', 'price': 12}}
#用字典来存放商品信息


"""系统登录验证及确定购物预算信息"""
def login():
    global username, passwd,out_money
    username = input("请输入您的用户名：")
    if username == 'exit':
        exit()
    else:
        passwd = input("请输入您的密码：")
        if username in lst.keys() and passwd == lst[username]['passwd']:
            #利用字典遍历的方式来在存放用户信息的字典中查找用户输入的账号是否存在
            print("登陆成功！")
            print(" 欢迎登进三乐购物系统 ".center(40, "-"))
            print(f"您当前的余额为：", lst[username]['balance'])
            out_money = lst[username]['balance']
            shopping()
        else:
            print("用户名或者密码错误，请重新输入.")
            login()



"""用户注册账号"""
#创建新的购物系统账号，利用字典的知识加入用来保存用户账号的字典
def enroll(balance=None):
    new_username = input("您的用户名为：")
    if new_username in lst.keys():
        print("您输入的用户名已有，请重新输入")
        enroll()
        # 注册账户时用户名重复，则重新输入
    elif new_username == exit:
        exit()
        #退出三乐购物系统
    else:
        new_passwd = input("您的密码为：")
        if new_passwd == 'exit':
            exit()
        else:
            new_balance = int(input("您的余额为："))
            if new_balance <= 0:
                print("你输入的金额小于零元，请重新输入")
                #当当前账号余额设置<0时，不能进行商品购买
            elif new_balance == "exit":
                exit()

            else:
                lst.update({new_username: {'passwd': new_passwd, 'balance': new_balance}})
                print("登录成功，请返回首页重新登录")
                login()



"""打印用户购物信息并退出三乐购物系统"""
def exit():
#退出后,按照要求打印当前用户已购买商品和余额
    print("您已购商品清单如下：")
    print(Shopping_list)
    print(f"您的余额为：{out_money}" + "    感谢您使用三乐购物系统，希望能带给您好的购物体验，下次再见^_^")
    sys.exit(0)



"""记录用户任意查看商品信息和已购买信息"""
def shopping():
    global  Shopping_cart, out_money , money, lst1
    print("#".center(50, "#"))
    print("今日商品详情".center(50, "-"))
    for i, j in goodslist.items():
        print(f'{i}-->{j}')
    # 遍历shoplist()字典
    while 1:
        shopinput = input("请输入你想要购买的商品对应编号：")
        if shopinput == 'exit':
            exit()
            # 退出三乐购物系统
        elif shopinput == 'A':
            for i, j in goodslist.items():
                print(f'{i}-->{j}')
            # 查看今日商品详情
        elif shopinput in goodslist.keys():


            #money += out_money
            #out_money -= money

            # 添加商品到购买车
            """购物车商品支付"""
            payment = input("是否确认支付：")
            print("*确认*", end="---")
            print("*退出*")
            while payment == '确认':
                if int(lst[username]['balance']) >= money:
                    lst1 = int(lst[username]['balance'])
                    #个人总资产赋值为lst1
                    money += goodslist[shopinput]['price']
                    out_money -= goodslist[shopinput]['price']
                    #余额
                    print(f"已成功支付，你的余额为{out_money}")
                    Shopping_list.update({goodslist[shopinput]['name']:
                                              {'单价': goodslist[shopinput]['price'],
                                               '总价': money}})
                    shopping()
                elif int(out_money) < money:
                    print("您的余额不足！")
                    behavior = input("您的下一步操作是：")
                    print("*退出三乐购物系统*", end="---")
                    print("*返回首页*")
                    # money -= out_money
                    # out_money += money
                    Shopping_list.popitem()
                    if behavior == 'exit':
                        exit()
                    elif behavior == '返回首页':
                        home()
                else:
                    print("输入格式错误")
            if payment == 'exit':
                exit()
            else:
                print("输入格式错误，请重新输入")
        elif shopinput == 'shopping_car':
            print(Shopping_list)
        else:
            print("您输入的商品信息不在今日售卖商品当中，请重新输入...")


#首页设计
def home():
    shopping_list = {}
    print("#".center(45, "#"))
    print(" 三乐购物系统欢迎您 ".center(40, "^"))
    print(" 菜单 ".center(45, "-"))
    print("*登录*",end="---------------")
    print("*注册*",end="---------------")
    print("*退出*")
    print(" ".center(45, " "))
    choice = input("请输入您的选择：")
    print("温馨提示：输入'exit'退出三乐购物系统，输入'A'查看今日商品详情")
    if choice == '登录':
        login()
    elif choice == '注册':
        enroll()
    elif choice == '退出':
        exit()
    else:
        print("您输入的格式错误，请重新输入！")
        home()

home()


